<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>声明式与命令式代码</title>
</head>
<body>
<!--命令式代码的意思就是，我们通过编写一条又一条指令去让计算机执行一些动作，这其中一般都会涉及到很多繁杂的细节。-->

<!--而声明式就要优雅很多了，我们通过写表达式的方式来声明我们想干什么，而不是通过一步一步的指示。-->

<script>
    //命令式
    var CEOs=[];
    for(var i=0;i<companies.length;i++){
        CEOs.push(companies[i].CEO)
    }
    //声明式
    var CEOs=companies.map(c=>c.CEO);
//    命令式的写法要先实例化一个数组，然后再对 companies 数组进行for循环遍历，手动命名、判断、增加计数器，就好像你开了一辆零件全部暴露在外的汽车一样，虽然很机械朋克风，但这并不是优雅的程序员应该做的。

//声明式的写法是一个表达式，如何进行计数器迭代，返回的数组如何收集，这些细节都隐藏了起来。它指明的是做什么，而不是怎么做。除了更加清晰和简洁之外，map 函数还可以进一步独立优化，甚至用解释器内置的速度极快的 map 函数，这么一来我们主要的业务代码就无须改动了。
</script>
</body>
</html>